# -*- coding: utf-8 -*-
"""
Created on Sun Aug 13 18:53:23 2023

@author: skunk69
"""

import json

chinese_name = u'家庭亲密度和适应性量表中文版'
english_name = 'Family Adaptability and Cohesion Scale，2nd Edition，Chinese Version'
abbreviation = 'FACESⅡ-CV'
category = u'家庭与人际关系量表'

outline = u"""在国内外，越来越多的研究和临床实践开始重视家庭因素对个体的影响作用，尤其是精神分裂症患者家庭。与西方相比，中国绝大多数精神病患者和家属生活在一起，与家属接触时间比西方多，因此在中国，家庭因素对精神疾病的致病作用及患病成员对家庭的影响会比西方大。但在中国治疗精神病过程中，大多数评估家庭因素通常仅限于问家族精神病史，没有详细了解中国精神病患者家庭结构特点等信息。为了了解精神病患者家庭因素的实质，便于开展以预防和康复为目的的家庭咨询和治疗，一个能够测量出家庭内部结构和功能又方便易行的工具显得很有意义。
家庭亲密度和适应性量表第2版(FACESⅡ)由Olson等人于1982年编制。费立鹏等人对此量表进行了多次修订。量表包括2个分量表：亲密度(cohesion)，即家庭成员之间的情感联系；适应性(adaptability)，即家庭体系随家庭处境和家庭不同发展阶段出现的问题而相应改变的能力。根据Olson的家庭“拱极模式”(circumpolar model)，用亲密度与适应性2个分量表的分数可将被试者的家庭区分成16种类型。"""

instruction = {}
instruction['actual'] = u"""本量表分家庭目前实际情况和理想中的家庭情况2个部分，共60个条目。主要是关于家庭关系和活动的问题，该问卷所知的家庭是指与您共同食宿的小家庭。请您按照您家庭目前的实际情况和理想中的家庭情况来回答，回答时，请在5个不同的答案中选择一个您认为适当的答案。请您不要有什么顾虑，认真按您自己的意见回答每一个问题，不要参考家庭其他成员的意见。如果您对某问题不太清楚如何回答的话，请您按照估计回答。请务必回答每一个问题，不要漏项。
（一）家庭目前实际情况：
下面30个关于家庭关系和活动的问题，请您按照家庭目前的实际情况来回答。"""
instruction['ideal'] = u"""（二）理想中的家庭情况：
下面30个关于家庭关系和活动的问题与前面相同，但这次请您按照您心目中理想的家庭情况即您所希望的家庭情况来回答。回答问题时不要考虑家庭目前的实际情况。
注：本表略去，因条目与前表完全一样。"""

with open('FACESⅡ-CV.txt','r',encoding='utf-8') as f:
    lines = f.readlines()
    f.close()

items = {}
for line in lines:
    key,value = line.strip().split('.',maxsplit=1)
    items[key.strip()] = value.strip()

reverse_items = []
scales = [u'亲密度',u'适应性']
scales_items = [
    [1,5,7,11,13,15,17,21,23,25,27,30,-3,-9,-19,-29],# 亲密度 
    [2,4,6,8,10,12,14,16,18,20,22,26,-24,-28],# 适应性
    ]

# check scales_items
print(f'scale length={[len(l) for l in scales_items]}')

check = []
for l in scales_items:
    check = check+l
print(f'len(check)={len(check)}')

# complementary set
check_set = {i for i in sorted(check)}^{i for i in range(1,31)}
print(f'complementary set= {check_set}')

factors = []
factors_scales = []
rating = [u'不是',u'偶尔',u'有时',u'经常',u'总是']
score_rules = list(range(1,6))

contents = {
    'instruction':instruction,
    'items':items,
    'reverse_items':reverse_items,
    'scales':scales,
    'scales_items':scales_items,
    'factors':factors,
    'factors_scales':factors_scales,
    'rating':rating,
    'score_rules':score_rules       
    }

implementation = u"""《家庭亲密度和适应性量表（中文版）》属于一个自评量表。量表共有30个条目，采用五级评分，即“不是”记1分，“偶尔”记2分，“有时”记3分，“经常”记4分，“总是”记5分。
对于每个条目，被试者需要回答两次，一次是对自己家庭现状的实际感受，另一次是自己所希望的理想家庭状况。
按量表原英文版本的做法是要求被试者按目前的实际家庭状况和理想的家庭状况一起回答同一个问题。中国的被试者对于这种做法显得十分困难，因此，费立鹏等在第2次修订过程中将量表分为实际家庭状况和理想家庭状况2个部分，共60个条目。
被试者在亲密度和适应性上的各自实际感受得分减去理想得分的差的绝对值为被试者的不满意程度。差异越大，不满的程度越大。"""

reliability = u"""正式样本有325人，均来自城市。其中精神分裂症（根据DSM-D1-R标准诊断）患者35人，患者家属77人〈分别来自64个家庭），对照组家庭被试122人（分别来自119个家中无精神病或严重躯体疾病病人的家庭），28人来自有其他精神病或严重躯体疾病病人的家庭和63名精神卫生工作人员。实际和理想亲密度、实际和理想适应性的内部一致性系数为0.85，0.76，0.73、0.68。对26名对照组家庭被试进行平均间隔39.1天的第2次测量获得重测信度，分别为0.84，0.54，0.91和0.54。2次的不满程度分的重测信度为0.85和0.88。"""
validity = u"""采用家庭环境量表中文版（FES-CV）的亲密度、情感表达和矛盾性为效标，计算实际和理想亲密度、实际和理想适应性、不满程度与它们的相关系数。"""
measurements = {'reliability':reliability,'validity':validity}

interpretation = u"""亲密度和适应性分量表分数分别按如下方法计算：
亲密度得分=36+T1+T5+T7+T11+T13+T15+T17+T21+T23+T25+T27+T30-T3-T9-T19-T29
适应性得分=12+T2+T4+T6+T8+T10+T12+T14+T16+T18+T20+T22+T26-T24-T28
“Tx”表示第X题目的得分，例如第1个题目（T1）为3分，第5个题目（T5）为4分，则为36+3+4……。
根据亲密度与适应性2个分量表的分数可将被试者的家庭区分成16种家庭类型。然而这种分类方式是否适用于中国家庭有待进一步的研究和评价。"""

applications = u"""FACESⅡ在美国已广泛应用于对不同的家庭类型进行比较、找出在家庭治疗中需要解决的问题以及评价家庭干预的效果。而在国内主要应用于精神分裂者患者、抑郁症患者、物品依赖者以及大学生群体等2000年以后的研究中。"""

this_scale = {
    'chinese_name':chinese_name,
    'english_name':english_name,
    'abbreviation':abbreviation,
    'category':category,
    'outline':outline,
    'contents':contents,
    'implementation':implementation,
    'measurements':measurements,
    'interpretation':interpretation,
    'applications':applications    
    }

with open(abbreviation+'.json','w+',encoding='utf-8') as f:
    json.dump(this_scale,f,indent=2,ensure_ascii=False)